package com.hf.inteceptor;

import java.util.Iterator;
import java.util.Map;

import com.base.bean.User;
import com.hf.listener.MySessionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class AuthorityInterceptor extends AbstractInterceptor{
	
	private String openId;		//
	
	//拦截器参数传递测试
	private String tip,sessionId;
	
	
	
	/** 待完成功能：
	 *  通过openId查询对应user是否是允许的角色 如果不是则跳转到登录页面
	 *  
	 *  访问权限拦截器：
	 * 
	 *  暂时只做简单实现： 
	 * 	  拦截器会先于action执行 
	 *  查询session中用户状态是否为允许登陆
	 *   
	 *   
	 *   
	 *   
	 *  通过openId查询session 如果对应了单位用户才被允许 否则回到登陆页面
	 *    
	 * 
	 */
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
//		// TODO Auto-generated method stub
//		User user=null;
		this.openId=invocation.getStack().findString("openId");// 从值栈中取出 "sessionId" 的值
		this.openId=(this.openId==null?"":this.openId);
		if(MySessionContext.getSession(this.openId)==null){
			invocation.getStack().setValue("tip","该用户没有登录");
			return Action.ERROR;
		}
//		
//		user=MySessionContext.getUser(this.openId);
//		if(user==null){
//			invocation.getStack().setValue("tip","该用户没有登录");
//			return Action.ERROR;
//		}
//		
//		if(user.getState()==0){
//			invocation.getStack().setValue("tip","用户审核中，请耐心等待");
//			return Action.ERROR;
//		}
		
		return invocation.invoke();
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}


	public String getOpenId() {
		return openId;
	}


	public void setOpenId(String openId) {
		this.openId = openId;
	}


	public String getTip() {
		return tip;
	}


	public void setTip(String tip) {
		this.tip = tip;
	}


	public String getSessionId() {
		return sessionId;
	}


	public void setSessionId(String sessionId) {
		this.sessionId = sessionId;
	}
	
	

}
